home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nihcl-30.lha / nihcl-3.0 / ex / ex6-4.c < prev    next >
C/C++ Source or Header  |  1990-05-15  |  587b  |  32 lines

  1. // ex6-4.c -- Calling a virtual function from a
  2. //            base class constructor
  3.  
  4. // $Header: /afs/alw.nih.gov/unix/sun4_40c/usr/local/src/nihcl-3.0/share/ex/RCS/ex6-4.c,v 3.0 90/05/15 22:45:46 kgorlen Rel $
  5.  
  6. #include <iostream.h>
  7.  
  8. class A {
  9. public:
  10.     virtual void vf();
  11. };
  12.  
  13. void A::vf()    { cout << "A::vf()" << endl; }
  14.  
  15. class B: public A {
  16. public:
  17.     B()         { vf(); }   // Calls A::vf(), not C::vf()
  18. };
  19.  
  20. class C: public B {
  21. public:
  22.     C()         { vf(); }   // Calls C::vf()
  23.     virtual void vf();
  24. };
  25.  
  26. void C::vf()    { cout << "B::vf()" << endl; }
  27.  
  28. main()
  29. {
  30.     C c;
  31. }
  32.